package com.util.security;

import java.security.MessageDigest;
/**
 * @Author: commander
 * @Description: SHA加密算法
 * @Version: 1.0
 * @Date: 2016/12/11 18:08
 */
public class SHAUtil {
	public SHAUtil(){}
	/**
	 * SHA加密 生成40位SHA码
	 *
	 * @param inStr 待加密字符串
	 * @return 返回40位SHA码
	 */
	public String shaEncode(String inStr) throws Exception {
		MessageDigest sha = null;
		try {
			sha = MessageDigest.getInstance("SHA");
		} catch (Exception e) {
			System.out.println(e.toString());
			e.printStackTrace();
			return "";
		}

		byte[] byteArray = inStr.getBytes("UTF-8");
		byte[] md5Bytes = sha.digest(byteArray);
		StringBuffer hexValue = new StringBuffer();
		for (int i = 0; i < md5Bytes.length; i++) {
			int val = ((int) md5Bytes[i]) & 0xff;
			if (val < 16) {
				hexValue.append("0");
			}
			hexValue.append(Integer.toHexString(val));
		}
		return hexValue.toString();
	}

	/**
	 * 测试主函数
	 *
	 * @param args
	 * @throws Exception
	 */
//	public static void main(String args[]) throws Exception {
//		String str = new String("suguolong");
//		System.out.println("原始：" + str);
//		System.out.println("SHA后：" + shaEncode(str));
//	}
}
